package com.jt.common.util;

/**
 * 验证request 参数
 * @author BennyTian
 * @date 2014年12月9日
 */
public class ValidationRequestUtil {
	
	/**
	 * 验证参数不可为 null
	 * @param objs
	 */
	public static void validateNotNull(Object... objs) {
		if(objs!=null && objs.length > 0){
			for (int i = 0; i < objs.length; i++) {
				if(objs[i]==null){
					throw new IllegalArgumentException("objs["+i+"] is null.");
				}
			}
		}
	}
	
	/**
	 * 验证字符串不可为空
	 * @param strs
	 */
	public static void validateNotEmpty(String ... strs){
		if(strs!=null && strs.length > 0){
			for (int i = 0; i < strs.length; i++) {
				if (StringUtils.trimToNull(strs[i]) == null) {
					throw new IllegalArgumentException("请求参数 “"+i+"” 缺失");
					//throw new IllegalArgumentException("strs["+i+"] is null or empty.");
				}
			}
		}
	}
	
	/**
	 * 验证数字是否大于0
	 * @param ds
	 */
	public static void validateGreaterThanZero(Number... ds){
		if(ds!=null && ds.length > 0){
			for (int i = 0; i < ds.length; i++) {
				if(ds[i]==null || ds[i].doubleValue()<=0){
					throw new IllegalArgumentException("请求参数 “"+i+"” 不大于0");
				}
			}
		}
	}


	/**
	 * 验证数字是否大于0 带返回值
	 * @param ds
	 */
	public static boolean isValidateGreaterThanZero(Number... ds){
		boolean ThanZero = true;
		if(ds!=null && ds.length > 0){
			for (int i = 0; i < ds.length; i++) {
				if(ds[i]==null || ds[i].doubleValue()<=0){
					ThanZero = false;
				}
			}
		}
		return ThanZero;
	}


	/**
	 * 验证字符串不可为空 带返回值
	 * @param strs
	 */
	public static boolean isValidateNotEmpty(String ... strs){
		boolean empty = true;
		if(strs!=null && strs.length > 0){
			for (int i = 0; i < strs.length; i++) {
				if (StringUtils.trimToNull(strs[i]) == null) {
					empty = false;
					break;
				}
			}
		}
		return empty;
	}


    /**
     * 验证至少输入一个参数 带返回值
     * @param strs
     */
    public static boolean isValidateLeastOne(String ... strs){
		boolean hasParameter = false;
        if(strs!=null && strs.length > 0){
            for (int i = 0; i < strs.length; i++) {
                if (StringUtils.trimToNull(strs[i]) != null) {
                    hasParameter = true ;
                    break;
                }
            }
        }
		return hasParameter;
    }

}
